package com.djf.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;

/**
 * 任务信息实体类
 * 用于存储流程任务的详细信息
 * 
 * @author djf
 * @date 2025/01/20
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("task_info")
public class TaskInfo {

    @TableId(type = IdType.AUTO)
    private Long id;

    @TableField("task_id")
    private String taskId;
    
    @TableField("process_instance_id")
    private String processInstanceId;
    
    @TableField("process_definition_key")
    private String processDefinitionKey;
    
    @TableField("task_name")
    private String taskName;
    
    @TableField("task_key")
    private String taskKey;
    
    @TableField("description")
    private String description;
    
    @TableField("assignee")
    private String assignee;
    
    @TableField("assignee_name")
    private String assigneeName;
    
    @TableField("candidate_groups")
    private String candidateGroups;
    
    @TableField("candidate_users")
    private String candidateUsers;
    
    @TableField("priority")
    private Integer priority;
    
    @TableField("status")
    private String status;
    
    @TableField("create_time")
    private LocalDateTime createTime;
    
    @TableField("due_time")
    private LocalDateTime dueTime;
    
    @TableField("complete_time")
    private LocalDateTime completeTime;
    
    @TableField("duration")
    private Long duration;
    
    @TableField("comment")
    private String comment;
    
    @TableField("result")
    private String result;
    
    @TableField(value = "created_time", fill = FieldFill.INSERT)
    private LocalDateTime createdTime;
    
    @TableField(value = "updated_time", fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updatedTime;
    
    @TableLogic
    @TableField("deleted")
    private Integer deleted;


}